// 菜单项类型
export interface MenuItem {
  id: number
  parentId: number
  name: string
  title: string
  path: string
  component?: string
  redirect?: string
  icon?: string
  hidden?: boolean
  alwaysShow?: boolean
  noCache?: boolean
  breadcrumb?: boolean
  affix?: boolean
  activeMenu?: string
  disabled?: boolean
  sort?: number
  status?: string
  createTime?: string
  permissions?: string[]
  children?: MenuItem[]
  meta?: {
    title: string
    icon?: string
    hidden?: boolean
    noCache?: boolean
    breadcrumb?: boolean
    affix?: boolean
    activeMenu?: string
    permissions?: string[]
  }
}

// 菜单查询参数类型
export interface MenuQuery {
  pageNum: number
  pageSize: number
  name?: string
  status?: string
  menuType?: string
}

// 菜单表单类型
export interface MenuForm {
  id?: number
  parentId: number
  name: string
  title: string
  path: string
  component?: string
  redirect?: string
  icon?: string
  hidden: boolean
  alwaysShow: boolean
  noCache: boolean
  breadcrumb: boolean
  affix: boolean
  activeMenu?: string
  permissions?: string[]
  sort: number
  status: string
  remark?: string
}

// 面包屑类型
export interface BreadcrumbItem {
  title: string
  path?: string
  icon?: string
}

// 菜单树节点类型
export interface MenuTreeNode {
  id: number
  title: string
  children?: MenuTreeNode[]
}
